#ifndef FILEMGR_H
#define FILEMGR_H

#include <memory> //std::shared_ptr    std::unique_ptr
#include <fstream>

#include <vector>
#include <string>

class FileMgr
{
public:
    FileMgr(const std::string& filename);
    ~FileMgr()
    {

    }


    typedef std::vector<std::string> Buffer;
    typedef std::unique_ptr<Buffer> BufferPtr;

    void append(const std::string& data);
    void append(const BufferPtr& buffer);
    void flush()
    {
        if (m_pFile)
        {
            m_pFile->flush();
        }
    }



private:


//    typedef std::vector<std::string> Buffer;
//    typedef std::unique_ptr<Buffer> BufferPtr;


    std::unique_ptr<std::ofstream> m_pFile;
};

#endif // FILEMGR_H
